
import pingpp from 'pingpp-js'
import { createCharge, WXsign } from '../libs/interface'
import wxSdk from 'weixin-js-sdk'
// 获取用户信息
export const userInfoGet = function () {
  return JSON.parse(sessionStorage.getItem('userInfo')).member
}
// 登录设置用户信息
export const userInfoSet = function (val) {
  sessionStorage.setItem('userInfo', JSON.stringify(val))
}
// 获取字符串
export const getUrlData = function(name){  
  var url = window.location.href;
  var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
  var matcher = pattern.exec(url);
  var items = null;
  if (null != matcher) {                    
      try {
          items = decodeURIComponent(decodeURIComponent(matcher[1]));
      } catch (e) {
          try {
              items = decodeURIComponent(matcher[1]);
          } catch (e) {
              items = matcher[1];
          }
      }
  }
  return items;
}
// 支付
export const payview = function (num, channel, callback) {
  let params = {
    memberid: userInfoGet().id, // 会员id
    amount: num, // 充值金额
    channel: channel, // 支付渠道类型
    code: getUrlData('code'), // 需要前端通过微信浏览器跳转获得只有微信公众号需要，其它支付随便传'other'
    type: 1, // 1 充值乐币 , 2 商户充值
  }
  createCharge(params, (data) => {
    return callback(data)
  })
}
// 支付
export const gotopay=function(charge) {
  pingpp.createPayment(charge, function (result, err) {
    if (result == "success") {
        window.history.go(-1);
        // 只有微信公众账号 wx_pub 支付成功的结果会在这里返回，其他的 wap 支付结果都是在 extra 中对应的 URL 跳转。
    } else if (result == "fail") {
        alert("错误信息：charge 不正确或者微信公众账号支付失败时")
        // charge 不正确或者微信公众账号支付失败时会在此处返回
    } else if (result == "cancel") {
        // 微信公众账号支付取消支付
    }
  });
}
// 微信分享
export const WXShare = {
  hideOptionMenu: hideOptionMenu,
  topShare: topShare
};

function hideOptionMenu() {
  let params ={
    url:location.href
  }
  WXsign(params, (data) => {
    if (data.code == 1) {
      var wxData = data.payload;
      wxSdk.config({
        //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: 'wx163c4c3d188f8ee5', // 必填，公众号的唯一标识
        timestamp: wxData.timestamp, // 必填，生成签名的时间戳
        nonceStr: wxData.nonceStr, // 必填，生成签名的随机串
        signature: wxData.signature,// 必填，签名，见附录1
        jsApiList: [
          'checkJsApi',
          'onMenuShareTimeline',
          'onMenuShareAppMessage',
          'onMenuShareQQ',
          'onMenuShareWeibo',
          'onMenuShareQZone',
          'hideMenuItems',
          'showMenuItems',
          'hideAllNonBaseMenuItem',
          'showAllNonBaseMenuItem',
          'translateVoice',
          'startRecord',
          'stopRecord',
          'onVoiceRecordEnd',
          'playVoice',
          'onVoicePlayEnd',
          'pauseVoice',
          'stopVoice',
          'uploadVoice',
          'downloadVoice',
          'chooseImage',
          'previewImage',
          'uploadImage',
          'downloadImage',
          'getNetworkType',
          'openLocation',
          'getLocation',
          'hideOptionMenu',
          'showOptionMenu',
          'closeWindow',
          'scanQRCode',
          'chooseWXPay',
          'openProductSpecificView',
          'addCard',
          'chooseCard',
          'openCard'
        ]// 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      });
      wxSdk.ready(function () {
        // config信息验证后会执行ready方法，
        // 所有接口调用都必须在config接口获得结果之后，
        // config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，
        // 则须把相关接口放在ready函数中调用来确保正确执行。
        // 对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
        wxSdk.hideOptionMenu();
        // alert('已经屏蔽')
      });
    }
  })
}

function topShare(data) {
  data.url = 'https://www.xiewan8.com/lyApp?&gotoPage=' + data.gotoPage + '&inviterID=' + data.inviterID + '&type=' + data.type + '#/wxshare';
  var imgUrl = 'http://120.77.73.224:80/group1/M00/00/05/eE1J4FoedWqALp8pAABLzkI6gxQ837.png';
  data.imgUrl = data.imgUrl || imgUrl;
  var desc = '品质优质，价格实惠，消费还回馈，良心推荐哦！';
  data.desc = data.desc || desc
  toShare(data)
}

function toShare(sdata) {
  let params ={
    url:sdata.url
  }
  WXsign(params, (data) => {
    if(data.code == 1) {
      var wxData = data.payload;  
      wxSdk.config({
        // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: 'wx163c4c3d188f8ee5', // 必填，公众号的唯一标识
        timestamp: wxData.timestamp, // 必填，生成签名的时间戳
        nonceStr: wxData.nonceStr, // 必填，生成签名的随机串
        signature: wxData.signature,// 必填，签名，见附录1
        jsApiList: [
          'checkJsApi',
          'onMenuShareTimeline',
          'onMenuShareAppMessage',
          'onMenuShareQQ',
          'onMenuShareWeibo',
          'onMenuShareQZone',
          'hideMenuItems',
          'showMenuItems',
          'hideAllNonBaseMenuItem',
          'showAllNonBaseMenuItem',
          'translateVoice',
          'startRecord',
          'stopRecord',
          'onVoiceRecordEnd',
          'playVoice',
          'onVoicePlayEnd',
          'pauseVoice',
          'stopVoice',
          'uploadVoice',
          'downloadVoice',
          'chooseImage',
          'previewImage',
          'uploadImage',
          'downloadImage',
          'getNetworkType',
          'openLocation',
          'getLocation',
          'hideOptionMenu',
          'showOptionMenu',
          'closeWindow',
          'scanQRCode',
          'chooseWXPay',
          'openProductSpecificView',
          'addCard',
          'chooseCard',
          'openCard'
        ]// 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      });      
    }
  })
  wxSdk.ready(function () {
    // config信息验证后会执行ready方法，
    // 所有接口调用都必须在config接口获得结果之后，
    // config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，
    // 则须把相关接口放在ready函数中调用来确保正确执行。
    // 对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
    //wxSdk.hideOptionMenu();
    wxSdk.showMenuItems({
      menuList: [
        'menuItem:share:appMessage', // 分享给朋友
        'menuItem:share:timeline', // 分享到朋友圈
        //'menuItem:share:qq', // 分享到QQ
        //'menuItem:share:weiboApp',//分享到微博
        //'menuItem:share:QZone'
      ],
      success: function (res) {
        // alert(JSON.stringify(res))
        console.log(res)
        //alert('已显示“阅读模式”，“分享到朋友圈”，“复制链接”等按钮');
      },
      fail: function (res) {
        // alert(JSON.stringify(res)+'1111111111')
        console.log(res)
        //alert(JSON.stringify(res));
      }
    });
    //  分享给朋友
    wxSdk.onMenuShareAppMessage({
      title: sdata.shareTitle,
      desc: sdata.desc,
      link: sdata.url,
      imgUrl: sdata.imgUrl,
      trigger: function (res) {
        console.log(res)
        // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容，因为客户端分享操作是一个同步操作，这时候使用ajax的回包会还没有返回
        //alert('用户点击发送给朋友');
      },
      success: function (res) {
        console.log(res)
        //alert('已分享');
      },
      cancel: function (res) {
        console.log(res)
        //alert('已取消');
      },
      fail: function (res) {
        console.log(res)
        //alert(JSON.stringify(res));
      }
    });
    // console.log(sdata.url)

    // 分享到朋友圈
    wxSdk.onMenuShareTimeline({
      title: sdata.shareTitle,
      desc: sdata.desc,
      link: sdata.url,
      imgUrl: sdata.imgUrl,
      trigger: function (res) {
        console.log(res)
        // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容，因为客户端分享操作是一个同步操作，这时候使用ajax的回包会还没有返回
        //alert('用户点击分享到朋友圈');
      },
      success: function (res) {
        console.log(res)
        //alert('已分享');
      },
      cancel: function (res) {
        console.log(res)
        //alert('已取消');
      },
      fail: function (res) {
        console.log(res)
        //alert(JSON.stringify(res));
      }
    });
  });

}